6704b3c8e0fe9934c88f98a9f7a68717cfde8998,app/src/main/java/com/hotbitmapgg/ohmybilibili/module/video/VideoPlayerActivity.java,VideoPlayerActivity,initData,#,123
Before Change
//�并视频和弹幕数�
Observable.merge(loadVideo(), loadDanmaku())
.last()
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new Observer<Object>()
{
@Override
public void onCompleted()
{
mPlayerView.start();
mDanmakuView.start();
}
@Override
public void onError(Throwable e)
{
startText = startText + "ã€?失败】\n视频缓冲ä¸...";
mPrepareText.setText(startText);
startText = startText + "�失败】\n" + e.getMessage();
mPrepareText.setText(startText);
}
@Override
public void onNext(Object o)
{
}
});
}
After Change
.getHDVideoUrl(cid, 4, ConstantUtils.VIDEO_TYPE_MP4)
.compose(bindToLifecycle())
.map(videoInfo -> Uri.parse(videoInfo.getDurl().get(0).getUrl()))
.observeOn(AndroidSchedulers.mainThread())
.flatMap(new Func1<Uri,Observable<BaseDanmakuParser>>()
{
@Override
public Observable<BaseDanmakuParser> call(Uri uri)
{
mPlayerView.setVideoURI(uri);
mPlayerView.setOnPreparedListener(mp -> {
mLoadingAnim.stop();
startText = startText + "ã€?完æˆ?】\n视频缓冲ä¸...";
mPrepareText.setText(startText);
mVideoPrepareLayout.setVisibility(View.GONE);
});
String url = "http://comment.bilibili.com/" + cid + ".xml";
return DanmakuDownloadUtil.downloadXML(url);
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(baseDanmakuParser -> {
mDanmakuView.prepare(baseDanmakuParser, danmakuContext);
mDanmakuView.showFPS(false);
mDanmakuView.enableDanmakuDrawingCache(false);
mDanmakuView.setCallback(new DrawHandler.Callback()
{
@Override
public void prepared()
{
mDanmakuView.start();
}
@Override
public void updateTimer(DanmakuTimer danmakuTimer)
{
}
@Override
public void danmakuShown(BaseDanmaku danmaku)
{
}
@Override
public void drawingFinished()
{
}
});
mPlayerView.start();
}, throwable -> {
startText = startText + "ã€?失败】\n视频缓冲ä¸...";
mPrepareText.setText(startText);
startText = startText + "�失败】\n" + throwable.getMessage();
mPrepareText.setText(startText);
});
}
/**